﻿using System.Collections.Generic;
using System.Threading.Tasks;
using ThridGroup.ERP.DTO;
using Volo.Abp.Application.Services;

namespace ThridGroup.ERP.RBAC
{
    /// <summary>
    /// 用户角色服务接口
    /// </summary>
    public interface IUserRoleServices : IApplicationService
    {
        /// <summary>
        /// 获取用户完整角色信息
        /// </summary>
        /// <param name="id">用户ID</param>
        /// <returns>用户角色信息</returns>
        Task<UserRoleDto> FullUserRole(int id);

        /// <summary>
        /// 为用户分配角色
        /// </summary>
        /// <param name="userRoleDto">用户角色信息</param>
        /// <returns>受影响的行数</returns>
        Task<int> AddUserRole(UserRoleDto userRoleDto);

        /// <summary>
        /// 获取所有用户角色关系
        /// </summary>
        /// <returns>用户角色列表</returns>
        Task<List<UserRoleDto>> QueryUserRole();

        /// <summary>
        /// 获取指定用户的角色信息
        /// </summary>
        /// <param name="userId">用户ID</param>
        /// <returns>用户角色信息</returns>
        Task<UserRoleDto> GetUserRoles(int userId);

        /// <summary>
        /// 删除用户的所有角色
        /// </summary>
        /// <param name="userId">用户ID</param>
        /// <returns>是否成功</returns>
        Task<bool> DeleteUserRoles(int userId);
    }
}
